package repository

import (
	"context"
)

// CacheProvider 缓存提供者接口
type CacheProvider interface {
	// 基础操作
	Set(ctx context.Context, key string, value interface{}) error
	Get(ctx context.Context, key string) (interface{}, error)
	Delete(ctx context.Context, key string) error

	// 索引操作
	AddToIndex(ctx context.Context, indexName, indexValue string, primaryKey interface{}) error
	GetFromIndex(ctx context.Context, indexName, indexValue string) ([]interface{}, error)
	RemoveFromIndex(ctx context.Context, indexName, indexValue string, primaryKey interface{}) error

	// 统计
	Stats() CacheStats

	// 清理
	CleanExpired(ctx context.Context) error
}
